package com.iwhalecloud.bss.kite.cucc.service.attr.handler;

import com.iwhalecloud.bss.kite.common.constant.KeyConsts;
import com.iwhalecloud.bss.kite.common.constant.ServiceOfferConsts;
import com.iwhalecloud.bss.kite.common.util.KiteStringUtils;
import com.iwhalecloud.bss.kite.cucc.common.constant.LocalKeyConsts;
import com.iwhalecloud.bss.kite.cucc.common.constant.LocalServiceOfferConsts;
import com.iwhalecloud.bss.kite.manager.api.IOperateSceneInstService;
import com.iwhalecloud.bss.kite.manager.inst.KiteAttr;
import com.iwhalecloud.bss.kite.manager.inst.KiteAttrValue;
import com.iwhalecloud.bss.kite.manager.inst.KiteInst;
import com.iwhalecloud.bss.kite.service.attr.AttrData;
import com.iwhalecloud.bss.kite.service.attr.handler.AbstractAttrHandler;
import com.ztesoft.bss.common.util.ContextUtil;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

/**
 * 互联网专线（全国）业务等级属性，吉林省，枚举值只保留【城域网】，其他省份不变
 */
public class BusinessLevelAttrHandler extends AbstractAttrHandler {

    @Autowired
    IOperateSceneInstService operateSceneInstService;

    @Override
    public void after(KiteAttr attr, KiteInst inst, AttrData data) {
        // 吉林 互联网专线/goodsCategroyInfo全国：业务等级的枚举值只有：城域网。
        String provinceCode = ContextUtil.getLoginInfo().getUserInfo().getPostProvinceNbr();
        KiteAttr kiteAttr = inst.getAttr("2_0000075");
        List<KiteAttrValue> attrValues = kiteAttr.getAttrValues();
        int size = attrValues.size();
        if (LocalKeyConsts.PROVINCE_JILIN.equals(provinceCode)) {
            // 如果省份是吉林，接入层级属性的枚举值只有：城域网汇聚层、域网接入层。
            if(attrValues != null && size>0) {
                //把原来的全部清除：删除一个，list会实时减少一个。
                for (int i=0;i<size;i++) {
                    attrValues.remove(0);
                }
                //加入请选择、城域网。
                KiteAttrValue kiteAttrValue0 = new KiteAttrValue();
                kiteAttrValue0.setAttrValue("");
                kiteAttrValue0.setAttrValueName("--请选择--");
                kiteAttrValue0.setSortBy("0");
                attrValues.add(0, kiteAttrValue0);
                KiteAttrValue kiteAttrValue1 = new KiteAttrValue();
                kiteAttrValue1.setAttrValue("1_0000398");
                kiteAttrValue1.setAttrValueName("城域网");
                kiteAttrValue1.setAttrId("20210313680");
                kiteAttrValue1.setAttrValueId("20210313992");
                kiteAttrValue1.setSortBy("1");
                attrValues.add(1, kiteAttrValue1);

            }
        }
        //范围：上海；产商品已有字段“业务等级”新增属性枚举值“沃专线(教育网合作版)”
        if (LocalKeyConsts.PROVINCE_SHANGHAI.equals(provinceCode)) {
            KiteAttrValue kiteAttrValue2 = new KiteAttrValue();
            kiteAttrValue2.setAttrValue("100005446");
            kiteAttrValue2.setAttrValueName("沃专线(教育网合作版)");
            kiteAttrValue2.setAttrId("20210313680");
            kiteAttrValue2.setAttrValueId("202107141615");
            kiteAttrValue2.setSortBy(String.valueOf(size+1));
            attrValues.add(size, kiteAttrValue2);
            KiteAttrValue kiteAttrValue22 = new KiteAttrValue();
            kiteAttrValue22.setAttrValue("110007222");
            kiteAttrValue22.setAttrValueName("国际专用通道");
            kiteAttrValue22.setAttrId("20210313680");
            kiteAttrValue22.setAttrValueId("202107141616");
            kiteAttrValue22.setSortBy(String.valueOf(size+2));
            attrValues.add(size, kiteAttrValue22);
        }

        if (LocalKeyConsts.PROVINCE_HEBEI.equals(provinceCode) && KiteStringUtils.equalsAny(data.getServiceOfferId(), ServiceOfferConsts.SERVICE_OFFER_ORDER,
            LocalServiceOfferConsts.SERVICE_OFFER_RESOURCE_CHECK)) {
            kiteAttr.setDefaultValue("1_0000388");
        }
        super.after(attr,inst,data);
    }
}
